---
title: Self-Hosting the Apollo Router
subtitle: How to deploy the router on your own infrastructure
---

Apollo Router is a graph runtime that you can deploy in your own infrastructure.

```mermaid
flowchart LR;
  clients(Clients);
  subgraph "Your infrastructure";
  router(["<b>Router</b>"]);
  serviceB[Products<br/>API];
  serviceC[Reviews<br/>API];
  router -->|Sub-query| serviceB & serviceC;
  end;
  clients -.->|Query| router;
  class clients secondary;
```

For each version of the Apollo Router, Apollo provides:

- [A Helm chart for Kubernetes](#kubernetes-using-helm)
- [A Docker image](#container)
- [A binary](#local-binary)

## Kubernetes

### Apollo GraphOS Operator

Apollo recommends the [Apollo GraphOS Operator](/apollo-operator/). The Operator provides declarative Kubernetes resources to manage routers, supergraphs, graph schemas, and subgraphs. It simplifies complex multi-service architectures.

The Operator supports [workflow patterns](/apollo-operator/workflows/) based on your infrastructure:
- Single-cluster setups for simpler deployments
- Multi-cluster and hybrid configurations for distributed services
- Deploy-only patterns for existing CI/CD workflows

### Helm

Helm is a package manager for Kubernetes. Apollo provides a Helm chart with each release of Apollo Router in the GitHub Container Registry. Since router v0.14.0, Apollo has released each router Helm chart as an Open Container Initiative (OCI) image in `oci://ghcr.io/apollographql/helm-charts/router`.

Follow our [Kubernetes quickstart](/graphos/routing/kubernetes/quickstart) to deploy the router with a Helm chart.

## Docker

### Apollo Runtime Container (Recommended)

Apollo provides the [Apollo Runtime Container](https://github.com/apollographql/apollo-runtime), which bundles all that's required to run the Apollo Runtime in one place. This includes the Apollo Router and the [Apollo MCP Server](/apollo-mcp-server).

You can download the images from:

- [Docker Hub](https://hub.docker.com/r/apollograph/apollo-runtime) (recommended)
- [GitHub Container Registry](https://github.com/apollographql/apollo-runtime/pkgs/container/apollo-runtime)

For more information on deploying using your container environment:

- [Docker](/graphos/routing/self-hosted/containerization/docker)

### Router only container

This image is recommended only for Kubernetes-based deployments, and is used by the [Helm chart](/router/containerization/kubernetes/). For more information on deploying using your container environment:

- [Docker](/graphos/routing/self-hosted/containerization/docker-router-only)
- [AWS using Elastic Container Service (ECS)](/graphos/routing/self-hosted/containerization/aws)
- [Azure using Azure Container App](/graphos/routing/self-hosted/containerization/azure)
- [GCP using Google Cloud Run](/graphos/routing/self-hosted/containerization/gcp)

## Local binary

Running the Apollo Router directly from its binary speeds up local development and enables embedded use cases where containers are unavailable. 

Follow the [quickstart](/graphos/routing/get-started) to run a router binary.
